package com.ruoyi.fileMaintenance.service;

import java.util.List;

import com.ruoyi.fileMaintenance.domain.TCourseLearning;
import com.ruoyi.fileMaintenance.domain.TLearningMaterials;
import com.ruoyi.fileMaintenance.domain.dto.TLearningMaterialsDto;

/**
 * 学习资料Service接口
 * 
 * @author ruoyi
 * @date 2024-03-27
 */
public interface ITLearningMaterialsService 
{
    /**
     * 查询学习资料
     * 
     * @param id 学习资料主键
     * @return 学习资料
     */
    public TLearningMaterials selectTLearningMaterialsById(Long id);

    /**
     * 查询学习资料列表
     * 
     * @param tLearningMaterials 学习资料
     * @return 学习资料集合
     */
    public List<TLearningMaterials> selectTLearningMaterialsList(TLearningMaterials tLearningMaterials);

    /**
     * app查询学习资料列表
     *
     * @param tLearningMaterialsDto 学习资料
     * @return 学习资料集合
     */
    public List<TLearningMaterials> selectTLearningMaterialsList2(TLearningMaterialsDto tLearningMaterialsDto);

    /**
     * app 随机查课程下未学单词 1条数据
     *
     * @param courseId 课程id
     * @return 学习资料集合
     */
    public TLearningMaterials selectUnlearnedTLearningMaterials(Long courseId);

    /**
     * app 单词测试
     *
     * @param tLearningMaterials 学习资料
     * @return 学习资料集合
     */
    public List<TLearningMaterials> learningMaterialsTest(TLearningMaterials tLearningMaterials);

    /**
     * 新增学习资料
     * 
     * @param tLearningMaterials 学习资料
     * @return 结果
     */
    public int insertTLearningMaterials(TLearningMaterials tLearningMaterials);

    /**
     * 修改学习资料
     * 
     * @param tLearningMaterials 学习资料
     * @return 结果
     */
    public int updateTLearningMaterials(TLearningMaterials tLearningMaterials);

    /**
     * 批量删除学习资料
     * 
     * @param ids 需要删除的学习资料主键集合
     * @return 结果
     */
    public int deleteTLearningMaterialsByIds(Long[] ids);

    /**
     * 删除学习资料信息
     * 
     * @param id 学习资料主键
     * @return 结果
     */
    public int deleteTLearningMaterialsById(Long id);

    /**
     * 新增学习情况
     *
     * @param tCourseLearning 学习情况
     * @return 结果
     */
    public int insertCourseLearning(TCourseLearning tCourseLearning);
}
